home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / intuition / window / wimpx15.lha / WimpX1.5.Doc < prev    next >
Encoding:
Text File  |  1993-12-03  |  19.4 KB  |  484 lines

  1. ****************************************************************************
  2. ***                                     ***
  3. ***              WimpX v1.5 - Documentation File             ***
  4. ***                                     ***
  5. ***            Copyright R.C.Meathrel 1993             ***
  6. ***                                     ***
  7. ****************************************************************************
  8. * 21st NOV 1993
  9.  
  10. Background & Intro
  11. ******************
  12.  
  13. WimpX is basically a program which allows the intuition environment to be
  14. explored and altered. The WimpX project was undertaken due to the appearance
  15. in my disk box of a similar style of program - Fenster. After I first came
  16. across Fenster and began using it, mainly for the screen save, I was myself
  17. inspired(?) to write a similar utility. It might be said in fact that WimpX
  18. is very much like Fenster in many respects, ie. Screen layout! My first 
  19. version of WimpX was, quite frankly, a sorry affair, as those who had the
  20. mispleasure of seeing it will undoubtedly tell you. The interface was 
  21. pretty crap and the coding behind it wasn't that better either, this was 
  22. a couple of years ago now though when I had only just started in Assembly
  23. progging (Yes - WimpX is written in Asm not C, for speed and compactness).   
  24. Actually WimpX v1.5 is the newest member of the third generation of WimpX,
  25. the first two generations having collapsed due to some fairly dodgy coding
  26. practice on my part.
  27.  
  28. Development Info
  29. ****************
  30.  
  31. The assembler I use to prog WimpX is of course Devpac3 and I use BLink for
  32. all of the linking. WimpX presently consists of 7 object files which are
  33. linked together and then the final executable is crunched with PowerPacker4.
  34. WimpX v1.5 is around 69K uncrunched which is a bit larger than it ought to
  35. be given the fact it is in assembler. Version 1.5 has been tested on several
  36. Amiga models including the A500,A500+,A600,A1200 and the A4000 under all
  37. sorts of kickstarts - V1.2,V1.3,V2.04 and the latest V3. I firmly believe
  38. that version 1.5 will work on ALL Amigas bar those with kickstarts 1.1 or
  39. previous as WimpX asks for V33 libraries. WimpX has been tested fairly 
  40. rigorously using a multitude of debugging tools including commodore's own
  41. Enforcer (great prog!), although testing using Enforcer was carried out
  42. on an A4000 by Dave OJ without my presence, and so I am just trusting him
  43. when he tells me that everything is fine!
  44.  
  45.  
  46.             Basic operating instructions
  47.             ****************************
  48.             
  49. To install WimpX you must either double-click on it's icon if using WB or
  50. alternatively type in WimpX preceded by the path if using the Shell or
  51. CLI. You may wish to use the 'run' command so that you can still use the
  52. CLI to run other programs. 
  53.  
  54. When WimpX has installed itself it brings up a small window on the 
  55. Workbench screen, to access the features of WimpX you must depress the
  56. right mouse button whilst the window is active or press the return key.
  57. At this point the main WimpX screen should appear (memory permitting) and
  58. work can commence. You can return WimpX to it's sleep state at any time by
  59. pressing the Return key, or clicking on "Return to WB". 
  60.  
  61.  
  62.                 Using WimpX
  63.                 ***********
  64.                 
  65. Using WimpX is really quite simple and requires little explanation - WimpX
  66. was designed to be as intuitive as possible. All you need to utilise WimpX
  67. to the full is a working mouse and a bit of common sense. :)
  68.  
  69. The main function of WimpX, as stated above, is to nose around the intuition
  70. environment, making changes where and when you want to. The first thing to
  71. do is to select what you wish to work on, this will be a particular screen
  72. or maybe a particular window in that screen. You make your selection using
  73. the list of names in the centre of the WimpX screen. When WimpX is woken up
  74. it displays a list of screen names for you to choose from, when you click
  75. on your chosen screen name a further list will appear but this time showing
  76. all the names of the windows open in the chosen screen.
  77.  
  78. When you have made your selection you may use all of the tools that WimpX
  79. provides to alter or investigate the intuition environment.
  80.  
  81. Notes:  The 8 chars beside each screen name give some indication of the
  82. ******     screen resolution ie. (MEDRES) = Medium resolution eg. 640x256 (PAL)
  83.     & (HR-LCD) = High resolution interlaced eg. 1280x512 (PAL)
  84.     HAM - Hold & modify, EHB - Extra half brite & LCD - Interlaced.
  85.     
  86.     Click 'Show Screens' to return to list of screen names and click
  87.     'Update List' if window/screen activity has occured during the
  88.     selection/browsing process.
  89.     
  90.     Use scroll bar and arrows to advance through the list --->
  91.     '#' - Equivalent to Up arrow & '/' - Equivalent to Down arrow.
  92.     Use keys 1-9,0,- & = to highlight/select one of the 12 screen or
  93.     window names.
  94.     
  95. Key shortcuts
  96. *************
  97.  
  98. You have probably noticed that some letters have underlines, this means
  99. that pressing the lettered key will have the same effect as clicking the
  100. mouse for a particular function. Ie. pressing 'o' after selecting a screen
  101. will bring up screen information.
  102.  
  103. Important note:  Unlike most other WB2 & WB3 utils. WimpX IS case-sensitive,
  104. ***************     this means that if, in the above example, you pressed
  105.          shift-o instead of just 'o' then there would be no effect.
  106.          This might seem a bit silly but, unlike most programs,
  107.          WimpX has around 30 shortcuts and using a different letter
  108.          for each one would be impossible. Sorry about this but I
  109.          believe what I have done is a good idea (honestly).
  110.          
  111.          
  112.              The Screen/Window Functions
  113.              ***************************
  114.              
  115.    Now follows a list of the main WimpX functions and how to use them --->
  116.    
  117.  
  118.                  Screen functions
  119.                  ****************
  120.  
  121. To Front - Moves selected screen to front of display.
  122. ~~~~~~~~
  123.  
  124. To Back - Moves selected screen to the back of the display.
  125. ~~~~~~~
  126.  
  127. Change Title - Brings up another small window and allows name to be altered
  128. ~~~~~~~~~~~~   with the limitation that the length of name cannot be 
  129.            extended.
  130.  
  131. Close - Brings up a confirmation requester from which the screen can be 
  132. ~~~~~    closed.  Note: Any windows open in the screen will be closed
  133.     automatically before the screen closure.
  134.  
  135. Save - Brings up the screen saving suite where you must provide a filename.
  136. ~~~~   The screen can be saved in one of 3 different formats. IFF-ILBM saves
  137.        the screen such that the picture can be loaded in DPaint and most
  138.        other paint packages. IFF-ACBM is really only there for completeness
  139.        and will probably only prove useful to those using AmigaBASIC.
  140.        RAW format saves the screen as a series of bitplanes one after 
  141.        another and will be of most use to programmers.
  142.        Clicking the 'select...' button brings up an ASL file requester 
  143.        provided that WimpX was able to open the ASL library when it was run.
  144.        If ASL isn't available then this button will be ghosted.
  145.        
  146.        Note: WimpX does not compress the saved screens.
  147.        *****
  148.        
  149.  Xtra Notes: WimpX v1.5 will save out ANY screenmode currently obtainable
  150.  *********** from ANY Workbench version including WB3! 
  151.           Ie. FULL support for HAM8 and standard 256 col. modes.
  152.           Including 8-bit RGB CMAP chunks using the BMHDF_CMAPOK flag.      
  153.        
  154. Adjust Cols. - Brings up the WimpX palette editor so that the palette of
  155. ~~~~~~~~~~~~   the selected can be altered. No explanation on using PalED
  156.            is needed, just select your colour from the palette and
  157.            move the old sliders around a bit.
  158.            
  159.            Note: The WimpX PalED recognises both 4-Bit RGB and 8-Bit
  160.            ***** RGB when READING the screen's colourmap, Eg. each
  161.                     component can have a value 0-255. However, when 
  162.                     WimpX alters the palette of a screen it writes the new
  163.                     values as 4-Bit RGB using the LoadRGB4 ROM routine!
  164.                     This is because I have no documentation on the 
  165.                     LoadRGB32 routine!!! Now I know this is not on but
  166.                     unless somebody can loan me the new RKMs I can do
  167.                     nothing about it! 
  168.            
  169. Information - Brings up the screen information window which gives some
  170. ~~~~~~~~~~~   useful information about the selected screen such as the
  171.           dimensions, memory used, number of bitplanes and a few
  172.           addresses of related structures. Also the number of windows
  173.           present in the screen is displayed.
  174.           
  175.  
  176.                 Window Fuctions
  177.                 ***************
  178.                 
  179. To Front - Brings selected window to front of all other windows.
  180. ~~~~~~~~
  181.  
  182. To Back - Sends selected window behind all other windows.
  183. ~~~~~~~
  184.  
  185. Shrink - If the window is a resizable one this function reduces the 
  186. ~~~~~~     dimensions of the window to the smallest allowed by the window
  187.      definition.             
  188.      
  189. Expand - Expands selected window to it's maximum size taking into account
  190. ~~~~~~     the screen title bar.
  191.  
  192. Close - Brings up a confirmation requester allowing the selected window to
  193. ~~~~~    be closed. If the window has a menustrip attached the menustrip
  194.     is first cleared before the window is closed.
  195.     
  196. IDCMP - Brings up the IDCMP flags suite which shows you what IDCMP flags the
  197. ~~~~~    selected window utilizes and allows these to be modified.
  198.  
  199. Gadget ED - Brings up the gadget editor suite which allows all gadgets
  200. ~~~~~~~~~   attached to the selected window to be investigated and possibly
  201.         changed (only of use to programmers - if anyone!).
  202.         
  203.       > See below for instructions on how to use the gadget editor <
  204.  
  205. Pointer - Brings up the pointer options window which offers a wealth of
  206. ~~~~~~~      choices - not! From here you can opt to use the default pointer
  207.       for the selected window as opposed to any custom one which might
  208.       have been installed by the appliprog.   
  209.       
  210. Palette - Brings up the 'Palette options' window allowing the selected
  211. ~~~~~~~      screen's palette to be saved in one of 3 formats, Colourmap,
  212.       binary or sourcecode. Palettes saved as colourmaps can be
  213.       loaded into DPaint for example and used as palettes.
  214.       Binary saves out the colourmap entries as raw binary, which is
  215.       mainly of use to programmers. Sourcecode saves out the palette
  216.       as assembly source, eg.
  217.       
  218.               Dc.W $012C,$0000
  219.               Dc.W $0FFF,$0127
  220.               
  221.       Use the 'Select...' button to specify a filename using an ASL
  222.       file requester.
  223.       
  224. Refresh Window - Brings up the 'Refresh options' window allowing the gadgets
  225. ~~~~~~~~~~~~~~     and/or windowframe of the selected window to be refreshed.
  226.  
  227. Information - Brings up the window information window which allows the 
  228. ~~~~~~~~~~~   selected window's name to be altered, the window to be moved
  229.           about it's host screen using the proportional gadget.
  230.           Also the window's dimensions are listed together with the
  231.           number of gadgets attached to the window and a list of 
  232.           related structures. 
  233.  
  234. Print - Brings up the printer suite from which you can print out the window
  235. ~~~~~    or it's host screen. The 4 toggle buttons at the top control how
  236.     the picture is to be printed. The default setup should suffice for
  237.     most users although experienced users might require the use of the
  238.     extra flags to fine tune the printout.
  239.     
  240.     Below the flags are 6 text gadgets which allow the user to specify 
  241.     the area of the window which is to be printed. The PrtHeight and
  242.     PrtWidth fields determine the width of the resulting printout in
  243.     printer pixels. This means that the printout resolution is only
  244.     limited by the output device, this makes printing from WimpX very
  245.     flexible and worthwhile.
  246.     
  247.     Once WimpX has been instructed to print, a small window will open
  248.     in the middle of the screen, and selecting the STOP gadget will 
  249.     quit the printing process. It is a good idea to manually reset the
  250.     printer if the printing process has been cancelled otherwise the
  251.     next print is likely to start off with garbage!
  252.     
  253.     The only down side to the printing suite is that if you wish to
  254.     print the host screen then only the PrtHeight and PrtWidth fields
  255.     will be taken into account when printing and the remaining fields
  256.     will be computed automatically.
  257.  
  258. Note:    Unlike all previous versions of WimpX, WimpX1.5 checks to make
  259. *****    sure that base pointers are valid before attempting to either
  260.     close a screen or a window. This was included as a kind of safety
  261.     net and also to stop Dave OJ moaning. :-)
  262.                  
  263.                  The Gadget Editor
  264.                  *****************
  265.  
  266. The gadget editor is a relatively new edition to WimpX and it lets you
  267. investigate and alter gadgets which programs use. If the gadget editor does
  268. not appear when you click the button this is because the selected window
  269. doesn't have any gadgets attached to it. 
  270.  
  271. You can move through the gadget list by clicking on the arrows or pressing
  272. '<' & '>'. The gadgettype informs you the type of gadget eg. Boolean.
  273. The 4 string gadgets allow you to alter the dimensions of the gadget.
  274.  
  275. Clicking the 'Flags...' button brings up a window displaying what flags
  276. are available and which of these are used, these can be altered just as
  277. in the window IDCMP suite.
  278.  
  279. Note:    Bits 0 & 1 (displayed as $0001 & $0002) determine the gadget's 
  280. *****    highlighting, here is an explanatory table...
  281.     
  282.     Bit 0 | bit 1 | resulting highlighting
  283.     ------+-------+-----------------------
  284.       0   |   0   |    GADGHCOMP   ($0000)
  285.       0   |   1   |       GADGHIMAGE  ($0002)
  286.       1   |   0   |       GADGHBOX    ($0001)
  287.       1   |   1   |       GADGHNONE   ($0003)
  288.       
  289. Clicking the 'Activation...' button brings up a window similar to the
  290. gadget flags window described above.
  291.  
  292. The rendering window which is activated by clicking on 'Rendering...' 
  293. reveals any border structures or images or intuitexts which the gadget in
  294. question uses. Clicking discard on the appropriate item will detach that
  295. structure from the gadget, never to be seen again.
  296.  
  297. The 'Special Info...' window contains information regarding either a
  298. stringinfo structure or a propinfo structure depending on the gadgettype.
  299.  
  300. Note:   'Rendering...' and/or 'Special Info...' may be ghosted if not
  301. *****   applicable to the currently selected gadget.
  302.  
  303. Functions
  304. *********
  305.  
  306. Remove - Removes the current gadget from the list and resets the editor
  307. ~~~~~~     to the first gadget in the list.
  308.  
  309. Refresh - Refreshs the current gadget. If you alter the gadget dimensions
  310. ~~~~~~~      then you must click on 'Refresh' to let the changes take effect.
  311.       
  312.       Note: When you exit from the flags/activation/rendering and
  313.       *****    special info windows the changes made by you will be
  314.           installed without the need to click 'Refresh'.
  315.           
  316. Overwrite - Draws a solid box using colour 0 onto the gadgets select box,
  317. ~~~~~~~~~   useful when moving imagery around. 
  318.         
  319.         Note: Doesn't work with gadgets which have relative coords.
  320.         *****    
  321.     
  322.  
  323.                 Preferences
  324.                 ***********
  325.                 
  326. Note: If ASL is unavailable then the two menu items, 'Font...' and 
  327. ***** 'Screenmode...', will be ghosted.                
  328.  
  329. The WimpX preferences is accessed via a pull down menu which can be revealed
  330. by pressing and holding the right mouse button in the usual way. 4 options
  331. are available --->
  332.  
  333. General - Brings up the general prefs window allowing various paths to be
  334. ~~~~~~~      configured and also the maximum number of screen/window names
  335.       in each of the lists.
  336.       
  337.       Note: Pressing 'R' will activate the first string gadget and
  338.       *****    pressing the Tab key will progress through each of the 
  339.           string gadgets in turn.
  340.           
  341. Font - Brings up the font requester (only if ASL is available) where a
  342. ~~~~   suitable font can be chosen.
  343.  
  344. Screenmode - Brings up the screenmode requester (only if ASL is available)
  345. ~~~~~~~~~~   where a new mode for the WimpX screen to open in can be
  346.          selected. 
  347.          
  348.          Note: The control panel of the palette editor takes the same
  349.          ***** mode as the main WimpX screen.
  350.          
  351. Save settings - Saves current state of WimpX, including -->
  352. ~~~~~~~~~~~~~
  353.         1) The coords of WimpX WB window,
  354.         2) The coords of main WimpX screen,
  355.         3) List allocation,
  356.         4) Colours (First 4) of main WimpX screen,
  357.         5) Font used for WimpX screen,
  358.         6) Screenmode used for WimpX screen,
  359.     &    7) Various user paths
  360.         
  361.             ...to the current directory.
  362.  
  363. Note: To alter colours of WimpX just select the WimpX screen and then
  364. ***** click on "Adjust colours" to bring up the palette editor. You 
  365.       change the WimpX screen colours just as you change any other screen's
  366.       colours.    
  367.       
  368.  
  369.                    ARexx support
  370.                    *************
  371.                    
  372. Although WimpX v1.5 does support ARexx the command set that I have provided
  373. is somewhat limited and perhaps not greatly useful, however, the reason
  374. I have included ARexx support is because I feel that all Amiga programs
  375. written now must support ARexx if possible. This will help provide a
  376. consistent environment. When writing the ARexx interface for WimpX I had
  377. only the small Commodore manual to get info. from and it was not altogether
  378. too informative. This means I had to extract structure info. etc. from
  379. the include files! I expect that future editions of WimpX will include
  380. much more adequate support for the ARexx language.
  381.  
  382. Anyway, here are the commands implemented so far --->
  383.  
  384.     1) HOME            - Moves WimpX window to top-right of WB
  385.  
  386.     2) SCREEN scrnname    - Selects a screen to work with, where
  387.                   scrnname is a valid screen name.
  388.                   RC=0 if name is valid.
  389.  
  390.     3) WINDOW windname    - Selects a window to work with, where
  391.                   windname is a valid window name.
  392.                   RC=0 if name is valid.
  393.  
  394.     4) SAVEILBM filename    - Saves selected screen as an IFF-ILBM file
  395.                   as filename.
  396.  
  397.     5) SAVEACBM filename    - Saves selected screen as an IFF-ACBM file
  398.                   as filename.
  399.  
  400.     6) SAVERAW filename    - Saves selected screen as a RAW binary file
  401.                   as filename.
  402.  
  403.     7) REFRESHWINDOW    - Refreshs the selected window's windowframe
  404.                   and all of the gadgets.
  405.  
  406.     8) DEFAULTPOINTER    - Changes the pointer imagery of the 
  407.                   selected window to default imagery.
  408.  
  409.     9) CLOSEWINDOW        - Closes the selected window.
  410.  
  411.        10) CLOSESCREEN        - Closes the selected screen.
  412.  
  413.        11) SHRINKWINDOW        - Shrinks the selected window.
  414.  
  415.        12) EXPANDWINDOW     - Expands the selected window.
  416.        
  417.  
  418. Example ARexx prog to save out WB screen
  419. ****************************************
  420.  
  421.     /* A Simple Screen Saver */
  422.     /* By R.C.Meathrel */
  423.     
  424.     Say 'Enter filename to save Workbench screen as...'
  425.     Parse Pull NAME
  426.     
  427.     Address WIMPX       /* ARexx port name of WimpX is WIMPX */
  428.     
  429.     SCREEN 'Workbench' /* Select screen - in this case the WB screen */
  430.     
  431.     SAVEILBM NAME       /* Save screen */
  432.     Exit
  433.     
  434. As you can see, my ARexx skills haven't really taken off as yet!
  435.  
  436. ============================================================================
  437.  
  438.    --- SIGNING OFF ---
  439.    *******************
  440.    
  441.    Please write to the address that follows with ANY bugs which you might
  442. have found in WimpX or ANY suggestions for improvement. 
  443.  
  444. My present contact address -->
  445.  
  446.             Richard Meathrel
  447.             9 Tennyson Close,
  448.             Westhill,
  449.             Torquay,
  450.             Devon
  451.             England
  452.             TQ1 4PQ
  453.             
  454. University address (mail here during term time)-->
  455.  
  456.             Richard Meathrel
  457.             Hope Hall,
  458.             Prince of wales road,
  459.             Exeter
  460.             England
  461.             EX4 4PD
  462.             
  463. Feel free to mail me at --> cs93rcm@exeter.ac.uk  with ANY comments.
  464.             
  465. Misc. comments: WimpX is crunched with the excellent Powerpacker.
  466. ~~~~~~~~~~~~~~  
  467.         Main source length  : approx. 170K
  468.         Total source length : approx. 224K
  469.         Decrunched length   : approx. 69K
  470.             crunched length     : approx. 25K
  471.             Beta tester         : David Ockwell-Jenner
  472.             Linker used         : HiSoft's BLink v5.07
  473.             Icon made using     : DPaint II and Iconmaster
  474.             Printing tested on  : Star LC-10 colour
  475.             Amiga(s) Used        : A1200 {120MB HD} &A500 (Both 2MB)
  476.  
  477. Last Point:    WimpX is what i'am going to call "commentware", that is,
  478. **********    if you use WimpX you must sent me your thoughts on it to
  479.         one of the addresses above. 
  480.  
  481. Enjoy! :)
  482.  
  483. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  484. ============================================================================